Check if childs actually exists before using it
authorJavier Jardón <jjardon@gnome.org>
Thu, 22 Jul 2010 14:43:23 +0000 (16:43 +0200)
committerJavier Jardón <jjardon@gnome.org>
Thu, 22 Jul 2010 15:17:43 +0000 (17:17 +0200)
Check seems to have gone lost during GtkBin sealing in commit 4427760b

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=624707

gtk/gtkhandlebox.c
gtk/gtkmenuitem.c
gtk/gtkoffscreenwindow.c
gtk/gtkplug.c

index 971ebd5dc9f3e155c75b631dbb2ab391311856f2..ead564c3134a42c0c19f712397d847e58a80168b 100644 (file)
@@ -378,7 +378,8 @@ gtk_handle_box_map (GtkWidget *widget)
   gtk_widget_set_mapped (widget, TRUE);
 
   child = gtk_bin_get_child (bin);
-  if (gtk_widget_get_visible (child) &&
+  if (child != NULL &&
+      gtk_widget_get_visible (child) &&
       !gtk_widget_get_mapped (child))
     gtk_widget_map (child);
 
@@ -652,7 +653,7 @@ gtk_handle_box_size_allocate (GtkWidget     *widget,
                            widget->allocation.height);
 
 
-  if (gtk_widget_get_visible (child))
+  if (child != NULL && gtk_widget_get_visible (child))
     {
       GtkAllocation child_allocation;
       guint border_width;
@@ -919,6 +920,7 @@ gtk_handle_box_paint (GtkWidget      *widget,
   GtkHandleBox *hb = GTK_HANDLE_BOX (widget);
   GtkHandleBoxPriv *priv = hb->priv;
   GtkBin *bin = GTK_BIN (widget);
+  GtkWidget *child;
   gint width, height;
   GdkRectangle rect;
   GdkRectangle dest;
@@ -993,7 +995,8 @@ gtk_handle_box_paint (GtkWidget      *widget,
                         event ? &event->area : area,
                         handle_orientation);
 
-  if (gtk_widget_get_visible (gtk_bin_get_child (bin)))
+  child = gtk_bin_get_child (bin);
+  if (child != NULL && gtk_widget_get_visible (child))
     GTK_WIDGET_CLASS (gtk_handle_box_parent_class)->expose_event (widget, event);
 }
 
index 580cb02551d8a398ad2ea60095a0d25c79af4cdf..ded538c26cf4f0c19b8b63349e55c612c1936f62 100644 (file)
@@ -973,7 +973,8 @@ gtk_menu_item_size_request (GtkWidget      *widget,
     requisition->height += 2 * horizontal_padding;
 
   child = gtk_bin_get_child (bin);
-  if (gtk_widget_get_visible (child))
+
+  if (child != NULL && gtk_widget_get_visible (child))
     {
       GtkRequisition child_requisition;
       
index 30cc7a2b49c30af09a29bbf1a7736f4b7434e217..1c51abe2b465c9341db94df6c0efd0e24f16d033 100644 (file)
@@ -64,7 +64,8 @@ gtk_offscreen_window_size_request (GtkWidget *widget,
   requisition->height = border_width * 2;
 
   child = gtk_bin_get_child (bin);
-  if (gtk_widget_get_visible (child))
+
+  if (child != NULL && gtk_widget_get_visible (child))
     {
       GtkRequisition child_req;
 
@@ -103,7 +104,8 @@ gtk_offscreen_window_size_allocate (GtkWidget *widget,
                             allocation->height);
 
   child = gtk_bin_get_child (bin);
-  if (gtk_widget_get_visible (child))
+
+  if (child != NULL && gtk_widget_get_visible (child))
     {
       GtkAllocation  child_alloc;
 
index 5bb003afc00a8f57b4319f92e357c4b469ae8794..f1e2a19fe07b577a1979d48552f72330fcfdf7f7 100644 (file)
@@ -710,7 +710,8 @@ gtk_plug_map (GtkWidget *widget)
       gtk_widget_set_mapped (widget, TRUE);
 
       child = gtk_bin_get_child (bin);
-      if (gtk_widget_get_visible (child) &&
+      if (child != NULL &&
+          gtk_widget_get_visible (child) &&
          !gtk_widget_get_mapped (child))
        gtk_widget_map (child);
 
@@ -765,7 +766,8 @@ gtk_plug_size_allocate (GtkWidget     *widget,
                                allocation->width, allocation->height);
 
       child = gtk_bin_get_child (bin);
-      if (gtk_widget_get_visible (child))
+
+      if (child != NULL && gtk_widget_get_visible (child))
        {
          GtkAllocation child_allocation;